The academic field of machine learning studies algorithms, systems and methods for learning associations between inputs and outputs. The exact nature of the inputs, algorithms and outputs depend upon the domain of an application.
The inputs to a machine learning algorithm are typically referred to as features or attributes. It is often desirable to make learning algorithms operate as quickly as possible. In particular, in real-time or in near real-time. Sometimes, a major obstacle to achieving faster performance is computing the values of some of the input features.
In a preferred embodiment, machine learning is applied to computer games and the inputs to the learning typically include features that characterize the current game situation in which a game character finds itself. For example, there is the game character under attack by a nearby enemy and it is now low on health, or in contrast, the game character in question full of health and heading toward a large tree. Another kind of input feature that is useful for certain problems is features that characterize certain objects. For example, a game character may need to know the identity of the most dangerous enemy within an attack range, as well as the identity of the nearest enemy with a sword. In both cases, an important class of input features called Boolean-valued input features is common and important.
Boolean-valued input features are features that can be either true or false. Boolean-valued input features are usually defined by a logical expression comprised of one or more dependent features composed together using any standard logical operators such as “and” (&&), “or” (∥), “not” (!), equality (==), less than (<), less than or equal to (<=), greater than (>), greater than or equal to (>=), not equal to (!=) and parentheses. The dependent features are sometimes referred to by the inventors as the primitives.
Boolean-valued input features represent one example of how the need to rapidly evaluate sets of logical expressions occurs naturally within the context of machine learning. But in many other sub-fields of artificial intelligence (AI), as well as other areas such as electronic circuits, the need to rapidly evaluate sets of logical expressions is commonplace.